Yiksan0315's Blog

Self-Attention

# Tag:

  • Source/KU_ML2

Self-Attention

input간의 관계성을 알아내기 위하여 input 자신에게 Attention을 주는 기법.
  • Query: 비교하고자 하는 대상 vector.
  • Key: Query와 cosine similarity를 계산해 그 연관성을 계산하기 위한 vector.
    • attention weights: , 차원의 루트(Variance를 의미함)만큼 나누어주는 스케일링 작업으로 inner product값이 너무 과하게 커지지 않도록 한다. (Scaled dot-product attention)
  • Value: Query와 Key의 inner product를 통한 Cosine similarity를 바탕으로 한 attention weights의 비중에 따라 사용된 value.
    • Contect Vector: 이는 결국, 각 데이터 에 대한 Matrix 연산으로 변하게 된다.

각 데이터 instance에 대해 독립적으로 계산되므로, 병렬 처리가 가능해 GPU에서 Context Matrix를 한번에 계산 가능하다.

Why?

기존의 Attention 방식은 차원이 커짐에 따라 Variance가 커지는 문제가 있었고, Softmax속 특정 value가 과하게 커지는 문제가 있었다.

기존의 Attention 방식은 source input과 target output간의 의미 있는 연관성을 찾아주기 위해 사용된다.
반면, Self-attention은 source input내에서 연관성을 계산하는데, 이는 입력된 sequence 내에서 input들 간 서로 얼마나 관련이 있는지 확인하는 것이다.

  • 기존의 Attention과 달리 한 번에 전체적으로 처리 가능하므로 병렬 처리가 가능하다.
  • 모든 input간의 관계를 계산하므로 sequence의 길이의 관계없이 멀리 떨어진 input간의 연관성도 학습 가능하다.
    • 기존의 LSTM과 같이 사용하던 방식은 시간이 지남에 따라 input간의 연결성이 떨어진다.
  • Scaled Dot-product 방식을 통해 차원이 과하게 커져 Variance도 커지는 문제를 방지한다.
    • Softmax의 inner product 값이 커지는 문제 역시 방지된다.
toc test

이 페이지는 리디주식회사에서 제공한 리디바탕 글꼴이 사용되어 있습니다. 리디바탕의 저작권은 리디주식회사가 소유하고 있습니다.

This Font Software is licensed under the SIL Open Font License, Version 1.1.

Copyright 2025. yiksan0315 All rights reserved.